package tony.demo.sys.dto.enums

import com.fasterxml.jackson.annotation.JsonCreator
import io.swagger.v3.oas.annotations.media.Schema
import tony.core.enums.DefaultAndAsNull
import tony.core.enums.IntEnumValue
import tony.core.enums.getEnum

@Schema(type = "integer")
@Suppress("unused")
enum class ModuleType(
    override val value: Int,
) : IntEnumValue {
    NODE(0),
    ROUTE(1),
    COMPONENT(2),
    API(3),

    @DefaultAndAsNull
    UNUSED(-1),
    ;

    companion object {
        @JsonCreator
        @JvmStatic
        fun create(value: Int) =
            ModuleType::class.java.getEnum(value)
    }
}
